[アップデート]Amazon Connect API経由でエージェントのステータス変更が可能になりました
Amazon Connect(以下、Connect)にて、API経由でエージェントのステータス変更が可能になりました。
エージェントにはステータスがあり、Available
ステータスにすることで、通話等の業務をエージェントにルーティングすることが可能です。
これまで、ステータスの変更はCCPから手動で変更、リアルタイムメトリクスから変更することが可能でした。
▲ CCPからステータスを変更している様子
今回のアップデートで、こちらのステータス変更がAPI経由で行えるようになりました。本ブログでは、AWS CLIを利用してエージェントのステータスを変更してみたいと思います。
前提
- Connectインスタンスが構築済みであること
- AWS CLI 2.6.1以上が利用可能であること
やってみた
エージェントのステータス変更には、以下のコマンドを利用します。
put-user-status
コマンドの実行には、ConnectインスタンスのID等をパラーメタに指定する必要があります。指定する値をコンソールから確認しても問題ありませんが、ここではAWS CLIで必要な値を取得したいと思います。
まずは、list-instancesコマンドでインスタンスIDを取得します。ここでは、構築済みのConnectインスタンスの名前を変数に指定し、コマンドの実行結果も変数に入れています。(AWSアカウントIDはマスクしています)
$ INSTANCE_NAME=test-sakamaki $ INSTANCE_ID=`aws connect list-instances \ --query "InstanceSummaryList[?InstanceAlias=='${INSTANCE_NAME}'].Arn" \ --output text` $ echo $INSTANCE_ID arn:aws:connect:ap-northeast-1:XXXXXXXXXXXX:instance/f248cbab-9769-4766-bd6d-bd42de1168ea
次は、list-usersコマンドで、ユーザIDを取得します。
$ aws connect list-users \ --instance-id $INSTANCE_ID { "UserSummaryList": [ { "Id": "04f6d9f9-06fc-4f05-971f-4f7a12753e4e", "Arn": "arn:aws:connect:ap-northeast-1:XXXXXXXXXXXX:instance/f248cbab-9769-4766-bd6d-bd42de1168ea/agent/04f6d9f9-06fc-4f05-971f-4f7a12753e4e", "Username": "admin" }, { "Id": "79f21b87-3113-4124-9a9e-d02ab9bc9724", "Arn": "arn:aws:connect:ap-northeast-1:XXXXXXXXXXXX:instance/f248cbab-9769-4766-bd6d-bd42de1168ea/agent/79f21b87-3113-4124-9a9e-d02ab9bc9724", "Username": "music" } ] }
複数ユーザが存在していました。ここではadminユーザのIDを取得します。
$ ADMIN_USER_ID=`aws connect list-users \ --instance-id $INSTANCE_ID \ --query "UserSummaryList[?Username=='admin'].Id" \ --output text` $ echo $ADMIN_USER_ID 04f6d9f9-06fc-4f05-971f-4f7a12753e4e
続いて、list-agent-statusesコマンドで、ステースIDを取得します。
$ aws connect list-agent-statuses \ --instance-id $INSTANCE_ID { "AgentStatusSummaryList": [ { "Id": "b73b67c8-2d39-4c6a-8240-918826aee6d4", "Arn": "arn:aws:connect:ap-northeast-1:XXXXXXXXXXXX:instance/f248cbab-9769-4766-bd6d-bd42de1168ea/agent-state/b73b67c8-2d39-4c6a-8240-918826aee6d4", "Name": "Lunch", "Type": "CUSTOM" }, { "Id": "e1265897-2926-4a8e-a319-a359df2514db", "Arn": "arn:aws:connect:ap-northeast-1:XXXXXXXXXXXX:instance/f248cbab-9769-4766-bd6d-bd42de1168ea/agent-state/e1265897-2926-4a8e-a319-a359df2514db", "Name": "Available", "Type": "ROUTABLE" }, { "Id": "2fd0eaa0-cd62-48ac-9dfb-d96792148aa4", "Arn": "arn:aws:connect:ap-northeast-1:XXXXXXXXXXXX:instance/f248cbab-9769-4766-bd6d-bd42de1168ea/agent-state/2fd0eaa0-cd62-48ac-9dfb-d96792148aa4", "Name": "Offline", "Type": "OFFLINE" } ] }
複数ステータスが存在していますが、ここでは通話等の業務がルーティングされるAvailable
のIDを取得しました。
$ STATUS_AVAILABLE_ID=`aws connect list-agent-statuses \ --instance-id $INSTANCE_ID \ --query "AgentStatusSummaryList[?Name=='Available'].Id" \ --output text` $ echo $STATUS_AVAILABLE_ID e1265897-2926-4a8e-a319-a359df2514db
これで準備が整いました。put-user-status
コマンドの実行前に、ステータス変更を行う該当ユーザのステータスを確認しました。
▲ Offline
put-user-status
コマンドにて、ステータスをAvailable
に変更します。
aws connect put-user-status \ --user-id $ADMIN_USER_ID \ --instance-id $INSTANCE_ID \ --agent-status-id $STATUS_AVAILABLE_ID
API経由でエージェントのステータス変更が行えました。
▲ Available
リアルタイムメトリクスからもステータスが確認できました。
▲ リアルタイムメトリクス/エージェント
さいごに
AWS CLIでエージェントのステータスを変更してみました。業務終了時など、管理者によるステータス変更の自動化や、カスタムダッシュボードの作り込み等で利用できるのではないでしょうか。